<template>
  <div id="app">
    <div id="echart_map" ref="echart_map"></div>
  </div>
</template>

<script>
import chinamap from "echarts/map/json/china.json"; //使用echarts内置地图
// import chinamap from '../assets/map/china.json'; //使用自己下载的地图，效果一样
export default {
  data() {
    return {
      myChart: null,
    };
  },
  mounted() {
    // this.init();
    this.showScatterInGeo(this.cityCode);
  },
  methods: {
    /*
      显示中国地图
    */
    init() {
      // 1. 创建一个 ECharts 实例，返回 echartsInstance，不能在单个容器上初始化多个 ECharts 实例
      this.myChart = this.$echarts.init(this.$refs.echart_map);
      // 2. 注册可用的地图，只在 geo 组件或者map图表类型中使用
      this.$echarts.registerMap("china", chinamap); //用导入的json文件注册一个name:china的地图组件

      // 3. 设置图表 option
      var option = {
        geo: {
          type: "map",
          map: "china", //使用 registerMap 注册的地图名称
        },
      };
      console.log("option1:", option);

      // 只显示一个地图的时候，用option,option2都可以。如果要在地图上加散点图，用 option
      // var option2 = {
      //   series: [
      //     {
      //       type: "map",
      //       map: "china", //使用 registerMap 注册的地图名称
      //     },
      //   ],
      // };
      // console.log("option2:", option2);

      // 4. 显示地图
      this.myChart.setOption(option);
    },
    /*
      geo:地理坐标系组件( https://echarts.apache.org/zh/option.html#geo)
      地理坐标系组件用于地图的绘制，支持在地理坐标系上绘制散点图
    */
    showScatterInGeo() {
      // 1. echarts 初始化
      this.myChart = this.$echarts.init(this.$refs.echart_map);
      // 2. echarts.registerMap()
      this.$echarts.registerMap("china", chinamap);
      // 3. 设置option
      var option = {
        geo: {
          type: "map",
          map: "china",
          label: {
            // label 设置文本标签的显示格式，去掉不影响显示地图
            normal: {
              color: "#000000",
              show: true, //省份名称
            },
          },
        },
        series: [
          {
            name: "在地图中显示散点图",
            type: "scatter",
            coordinateSystem: "geo", //设置坐标系为 geo
            data: [
              //这里放标注点的坐标[{name: "北京",value: [116.46, 39.92]}]
              { name: "北京", value: [116.41995, 40.18994] },
              { name: "郑州", value: [113.665412, 34.757975] },
              { name: "天津", value: [117.205126, 39.034933] },
              { name: "昆明", value: [102.81844, 24.906231] },
              { name: "广州", value: [113.26453, 23.155008] },
            ],
            label: {
              formatter: "{b}",
              position: "right",
              show: false,
            },
            emphasis: {
              label: {
                show: true,
              },
            },
          },
        ],
      };
      // 4. myChart.setOption()
      this.myChart.setOption(option);
    },
  },
};
</script>

<style scoped>
#echart_map {
  width: 100%;
  height: 500px;
  background-color: #f1f3f4;
}
</style>
